package com.wanxi.service.impl;

import com.wanxi.dao.ProductDao;
import com.wanxi.dao.impl.ProductDaoImpl;
import com.wanxi.dto.ProductDTO;
import com.wanxi.entity.ProductEntity;
import com.wanxi.service.ProductService;
import com.wanxi.util.Tool;
import com.wanxi.vo.HomeVO;
import com.wanxi.vo.ProductVo;

import java.util.List;

public class ProductServiceImpl implements ProductService {
    private ProductDao productDao = new ProductDaoImpl();

    @Override
    public List<ProductDTO> find(HomeVO homeVO) {
        //        将vo的值copy到entity
//        ProductEntity homeEntity = Tool.copy(homeVO, ProductEntity.class);
        ProductEntity productEntity = new ProductEntity();
        productEntity.setPage(homeVO.getPageProduct());
        productEntity.setLimit(homeVO.getLimitProduct());
        productEntity.setWhereShow(homeVO.getWhereShow());
        productEntity.setCuisineId(homeVO.getCuisineId());
//        将entity的值copy到dto
        List<ProductEntity> entity = productDao.find(productEntity);
        return Tool.copy(entity, ProductDTO.class);
    }

    @Override
    public List<ProductDTO> find(ProductVo productVo) {
        ProductEntity productEntity = new ProductEntity();
        productEntity.setId(productVo.getId());
        productEntity.setCuisineId(productVo.getCuisineId());
        productEntity.setLimit(productVo.getLimit());
        productEntity.setPage(productVo.getPage());
        productEntity.setWhereShow(productVo.getWhereShow());
        List<ProductEntity> entityList = productDao.findDetail(productEntity);
        return Tool.copy(entityList, ProductDTO.class);
    }

    @Override
    public List<ProductDTO> findAllProduct(ProductVo productVo) {
        ProductEntity productEntity = new ProductEntity();

        productEntity.setCuisineId(productVo.getCuisineId());
        productEntity.setLimit(productVo.getLimit());
        productEntity.setPage(productVo.getPage());
        productEntity.setWhereShow(productVo.getWhereShow());
        List<ProductEntity> entityList = productDao.findAllProduct(productEntity);
        return Tool.copy(entityList, ProductDTO.class);
    }

    @Override
    public int findProductCountByCuisineId(ProductVo productVo) {
        ProductEntity productEntity = new ProductEntity();
        productEntity.setCuisineId(productVo.getCuisineId());
        return productDao.findProductCountByCuisineId(productEntity);
    }
}
